Imports System.Xml.Serialization
Namespace Mapping

    Public Class FunctionMappingScalarProperty
        Inherits XEntityModelElementBase

        ''' <summary>Initializes an instance of the <see cref="FunctionMappingScalarProperty" /> class.
        ''' This is the default constructor for this class.</summary>
        Public Sub New()
            MyBase.New("ScalarProperty", CSXmlNamespace)
        End Sub

        ''' <summary>Initializes an instance of the <see cref="FunctionMappingScalarProperty" /> class.</summary>
        ''' <param name="other">An <see cref="System.Xml.Linq.XElement"/> object to copy from.</param>
        Public Sub New(ByVal other As XElement)
            MyBase.New(other)
        End Sub

        <XmlAttribute()> _
        Public Property ParameterName() As String
            Get
                Return Me.@ParameterName
            End Get
            Set(ByVal value As String)
                Me.@ParameterName = value
            End Set
        End Property

        <XmlAttribute(DataType:="token")> _
        Public Shadows Property Name() As String
            Get
                Return Me.@Name
            End Get
            Set(ByVal value As String)
                Me.@Name = value
            End Set
        End Property

        <XmlAttribute()> _
        Public Property Version() As Version
            Get
                Return GetEnumValueAttribute(GetType(Version), Me.Attribute(XName.Get("Version", MyBase.Name.NamespaceName)))
            End Get
            Set(ByVal value As Version)
                If (Me.Attribute(XName.Get("Version", MyBase.Name.NamespaceName)) Is Nothing) Then
                    Me.Add(New XAttribute(XName.Get("Version", MyBase.Name.NamespaceName), ""))
                End If
                SetEnumValueAttribute(GetType(Version), Me.Attribute(XName.Get("Version", MyBase.Name.NamespaceName)), value)
            End Set
        End Property

    End Class

End Namespace